At very high speed, data bits in a parallel bus may exhibit significant skew at synchronization. This is because the transmission of parallel bits of data over long distances is affected by the different propagation delays associated with each of the channels of the parallel bus (e.g., between sender and receiver). This holds true whether the channels are composed of metal or are fiber optic. The difference in propagation delays causes the arrival times of individual data bits at the destination receiver to be different. The difference between the bit arrival times at the receiver is referred to as skew. Where the channel lengths are kept short, the skew effect is not substantial. However, as channel lengths increase, the propagation delay accumulates and the skew increases. Eventually, the increasing channel lengths result in bits from one word drifting into the bits of another word. Once this occurs, the receiver cannot reliably align the bits into their respective words and data corruption and/or data loss may result. Data de-skewing may be required at the receiver before a proper processing of the data may be performed.
A conventional method of de-skewing skewed data signals involves single bit time de-skewing of skewed data signals. Utilizing this method, a skewed data signal is first synchronized to one particular edge of a clock signal and then de-skewed for a single bit skew. However, there may be additional delay introduced from such attempts at synchronization. Also, as may be appreciated, the resulting delay may be large if an improper decision is made in this regard. Additionally, such methods do not allow multiple bit de-skewing over a broad range of bit times. Using such conventional methods the maximum skew that may be corrected is of single bit length. Importantly, these methods do not allow the de-skewing of skewed data signals that are distorted by several bit lengths.